/**
 * Created by Administrator on 2021/5/18 0018.
 */
 const path = require('path');
 const MiniCssExtractPlugin = require('mini-css-extract-plugin');
 const VueLoaderPlugin = require('vue-loader/lib/plugin')
 module.exports = {
     publicPath: '/',//打包后的位置(如果不设置这个静态资源会报404)
     // publicPath: process.env.NODE_ENV === 'production' ? 'http://47.92.237.225:8080/dist' : './',
     outputDir: 'dist',//打包后的目录名称
     assetsDir: 'static',//静态资源目录名称
     productionSourceMap:false,  //去掉打包的时候生成的map文件
     lintOnSave: true,
     filenameHashing: false,
     // webpack配置
     // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
     chainWebpack: () => {},
     configureWebpack: (config) => {
         if (process.env.NODE_ENV === 'production') {
             // 为生产环境修改配置...文件名称添加版本号，避免缓存，其他库重名问题
             config.mode = 'production';
             config.output.filename = `static/js/[name].${process.env.npm_package_version}.js`
             config.output.chunkFilename = `static/js/[name]-${process.env.npm_package_name}.${process.env.npm_package_version}.js`
             //let plugins = []
             //plugins.push(
             //		new MiniCssExtractPlugin({
             //			filename: `static/css/[name].${process.env.npm_package_version}.css`,
             //			chunkFilename: `static/css/[name]-${process.env.npm_package_name}.${process.env.npm_package_version}.css`
             //		})
             //)
             //config.plugins = [...config.plugins, ...plugins];  //这样是新加了一个css
             let ind = -1
             config.plugins.forEach((v,i)=>{
                 let csss = JSON.stringify(v)
                 if(csss.indexOf('static/css') != -1){
                     ind = i
                 }
             });
             config.plugins[ind] = new MiniCssExtractPlugin({
                 filename: `static/css/[name].${process.env.npm_package_version}.css`,
                 chunkFilename: `static/css/[name]-${process.env.npm_package_name}.${process.env.npm_package_version}.css`
             })
         } else {
             // 为开发环境修改配置...
             config.mode = 'development';
         }
        //  Object.assign(config, {
        //      // 开发生产共同配置
        //      resolve: {
        //          alias: {
        //             //  '@': path.resolve(__dirname, './src'),
        //              '@c': path.resolve(__dirname, './src/components')
        //          }
        //      }
        //  });
     },
     //	// css相关配置
     css: {
        loaderOptions: {
            less: {
                // 属性值包裹在lessOptions内
                lessOptions: {
                    javascriptEnabled: true,
                    globalVars: {
                        primary: '#fff'
                    }
                }
            }
        }
    },
     //css: {
     //	// 是否使用css分离插件 ExtractTextPlugin
     //	extract: true,
     //	// 开启 CSS source maps?
     //	sourceMap: false,
     //	// css预设器配置项
     //	loaderOptions: {},
     //	// 启用 CSS modules for all css / pre-processor files.
     //	modules: false
     //},
     // use thread-loader for babel & TS in production build
     // enabled by default if the machine has more than 1 cores
     //parallel: require('os').cpus().length > 1,
     // PWA 插件相关配置
     // see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
     pwa: {},
     pages: {
         index: {
 
             // 页面的入口
             entry: './src/main.ts',
             // 页面的模板
             template: './public/index.html',
             // build时输出的文件名
             filename: './module/index.html',
             // 当使用 title 选项时，
             // template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
             title: '泰科医键通云平台',
             // 在这个页面中包含的块，默认情况下会包含
             // 提取出来的通用 chunk 和 vendor chunk。
             chunks: ['chunk-vendors', 'chunk-common', 'index']
         }
     },
     devServer: {
         host: '0.0.0.0', //请求路径
         port: '8008', //请求端口，当同时运行多个项目时就需要配置这个端口
         https: false,
         hotOnly: true, //是否热更新
         open: false, //是否自动启动浏览器
 
         // history模式下的url会请求到服务器端，但是服务器端并没有这一个资源文件，就会返回404，所以需要配置这一项
         //historyApiFallback: {
         //	index: '/index.html', //与output的publicPath有关(HTMLplugin生成的html默认为index.html)
         //},
         proxy: {
             '/api':{
                 // target:'http://say.ektlang.com/',  //跨域的域名
                 target: 'http://192.168.2.17:9710/',
                 //ws: true,  // 代理 websockets
                 changeOrigin: true, //是否开启跨域
                 pathRewrite:{
                     '^/api':''  // 重写地址
                 }
             }
         },
         before: (app) => {}
     },
 
 }